﻿/**
 * 给定A、B，已知其是X的两个最大的因子（除了X自身之外）
 * 求X。
 * 令 g = gcd(A, B), 则 A = ag, B = bg
 * 令 X = abg， 如果 X != B, 则就是答案
 * 否则  X = max(bgg, bbg)
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using llt = long long;
using vi  =vector<int>;
using pii = pair<int, int>;
using vvi = vector<vi>;
using vpii = vector<pii>;

int N, M, Q, K;
llt A, B;

llt proc(){
    if(1 == A) return B * B;

    auto g = __gcd(A, B);
    if(1 == g) return A * B;

    auto a = A / g, b = B / g;
    auto tmp = a * b * g;
    if(B < tmp) return tmp;

    if(b < g) return b * b * g;
    return b * g * g;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    cin >> nofkase;
    while(nofkase--){
        cin >> A >> B;
        cout << proc() << "\n";
    }
    return 0;
}